<?php
/**
 * 利用PHP数组模拟redisLRU数据淘汰算法
 */
class Lru{
    
    //存储数据
    protected $lru = [];

    //设置存储数据大小
    protected $maxLength = 100;

    /**
     * 设置数据
     */
    public function set($key , $value){
        
        if(count($this->lru) < $this->maxLength){
            if(array_key_exists($key,$this->lru)){
                unset($this->lru[$key]);  
            }
        }else{
            //移除先插入的数据
            array_pop($this->lru);
        }
        //设置值
        $this->lru[$key]=$value;
        return   true;
    }

    /**
     * 获取指定key的值
     */
    public function get($key){
        
        if(array_key_exists($key,$this->lru)){
            $value = $this->lru[$key];
            return $value;
        }
        return 'nil';
    }

}

$lru = new Lru();
$lru->set('num',1);
$lru->set('age',20);

echo $lru->get('num').PHP_EOL;
echo $lru->get('ages').PHP_EOL;
